// index.ts
import Request from './axios/index'
import type { IApiRes } from './axios/type'
import { message } from 'ant-design-vue'
export const requestInstanceOne = new Request({
  baseURL: import.meta.env.VITE_API_URL,
  timeout: 1000 * 60 * 5,
  interceptors: {
    // 请求拦截器
    requestInterceptors: (config) => {
      console.log('实例请求拦截器')
      return config
    },
    // 响应拦截器     // @ts-expect-error 忽略 Promise 类型不匹配的问题。想在这里从处理一下，如若成功则返回 res 如若失败 则返回Promise.reject(err)
    responseInterceptors: (res) => {
      console.log('实例响应拦截器:成功', res)
      const apiRes = res as IApiRes
      // return res
      if (apiRes.state == '0') {
        if (apiRes.errcode == 'ErrCode-00003') {
          message.error('登录已过期，请重新登录')
        } else if (apiRes.errcode == 'ErrCode-00002') {
          message.error(apiRes.errmsg)
        }
        return Promise.reject(apiRes)
      } else {
        return apiRes.data
      }
    },
    responseInterceptorsCatch(err) {
      console.log('实例响应拦截器:失败')
      // return err
      return Promise.reject(err)
    }
  }
})
